// compile: g++ -o literal literal.cc -std=c++11
// run: ./literal
#include <iostream>

using namespace std;

// 字符串字面量自定义必须设置如下的参数列表
std::string operator"" _wow1(const char *wow1, size_t len) {
  return std::string(wow1) + "woooooooooow, amazing";
}
std::string operator"" _wow2(unsigned long long i) {
  return std::to_string(i) + "woooooooooow, amazing";
}
std::string operator"" _wow3(long double i) {
  return std::to_string(i) + "woooooooooow, amazing";
}
std::string operator"" _wow4(char i) {
  std::string tmp = "woooooooooow, amazing"s;
  tmp.push_back(i);
  return tmp;
}
void Test1() {
  auto str1 = "abc"_wow1;
  auto str2 = 1_wow2;
  auto str3 = 3.423_wow3;
  auto str4 = 'c'_wow4;
  std::cout << str1 << std::endl;
  std::cout << str2 << std::endl;
  std::cout << str3 << std::endl;
  std::cout << str4 << std::endl;
}
void Test2() {}
int main() {
  Test1();
  Test2();
  return 0;
}